package br.com.localab.usuario.controlador;


import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import org.hibernate.Session;

import br.com.localab.curso.modelo.Curso;
import br.com.localab.fachada.Fachada;
import br.com.localab.usuario.modelo.Usuario;
import br.com.localab.util.autenticar.FacesContextUtil;

@ManagedBean
@RequestScoped
public class CadastroUsuarioMB {
	
	private String matricula;
	private String nome;	
	private String cpf;
	private String status;
	private boolean administrador;
	private boolean professor;
	private List<Curso> listaDeCursos;
	private List<String> codigoDosCursos;
	private List<Curso> cursosSelecionados;
	private String email;
	private Fachada fachada;
	private Session s;
	
	public CadastroUsuarioMB() {
		// TODO Auto-generated constructor stub
		s = FacesContextUtil.getRequestSession();
		fachada = new Fachada(s);
		listaDeCursos = fachada.cursoListar("ativo", true);
	}
	public String cadastrar(){
		String mensagem = "";
		Usuario usuario = new Usuario();
		usuario.setCpf(cpf);
		usuario.setMatricula(matricula);
		usuario.setNome(nome);
		usuario.setEmail(email);
		usuario.setAtivo(true);
		cursosSelecionados = new ArrayList<Curso>();
		for(String codigo:codigoDosCursos){
			cursosSelecionados.add(fachada.cursoProcurar(Long.parseLong(codigo)));
		}
		usuario.setCursos(cursosSelecionados);
		usuario.setAdministrador(administrador);
		usuario.setProfessor(professor);
		mensagem = fachada.usuarioCadastrar(usuario);
		FacesContextUtil.setMessageInformacao("Info", mensagem);
		limpar();
		return null;
	}
	
	public void limpar(){
	     matricula = "";
		 nome = "";
		 cpf = "";
		 status = "";
		 administrador = false;
		 professor = false;
		 email = "";
		 codigoDosCursos = new ArrayList<String>();
	}
	
	
	
	public String getMatricula() {
		return matricula;
	}
	public void setMatricula(String matricula) {
		this.matricula = matricula;
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public String getCpf() {
		return cpf;
	}
	public void setCpf(String cpf) {
		this.cpf = cpf;
	}
	public String getStatus() {
		return status;
	}
	public void setStatus(String status) {
		this.status = status;
	}
	public boolean isAdministrador() {
		return administrador;
	}
	public void setAdministrador(boolean administrador) {
		this.administrador = administrador;
	}
	public boolean isProfessor() {
		return professor;
	}
	public void setProfessor(boolean professor) {
		this.professor = professor;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public List<Curso> getListaDeCursos() {
		return listaDeCursos;
	}
	public void setListaDeCursos(List<Curso> listaDeCursos) {
		this.listaDeCursos = listaDeCursos;
	}
	public List<Curso> getCursosSelecionados() {
		return cursosSelecionados;
	}
	public void setCursosSelecionados(List<Curso> cursosSelecionados) {
		this.cursosSelecionados = cursosSelecionados;
	}
	public List<String> getCodigoDosCursos() {
		return codigoDosCursos;
	}
	public void setCodigoDosCursos(List<String> codigoDosCursos) {
		this.codigoDosCursos = codigoDosCursos;
	}
	
	

	
	

}
